package com.briup.day13;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 谭梦寻
 * @version 1.1
 * 泛型
 * 解决类型安全性和代码复用的问题
 * 允许我们在定义类、接口和方法时使用参数化类型 (不确定的类型) 使用时确定
 * Java中的泛型分三种使用情况：
 *      泛型类
 *      泛型接口
 *      泛型方法
 * 集合里的实现类基本都是泛型类
 */
public class TestT {
    public static void main(String[] args) {
//        获取元素 调用方法必须进行类型判断和强制类型转换
//        写集合的时候会有语法警告
//        集合遍历：每个元素都Object类型指向，调用方法
        List list = new ArrayList();
        for (Object obj :list) {

        }

//        创建泛型类对象 引用中写好了类型 所以实现类中不写也可以
//        注意一定要写对象或包装类
        Point<Double> p = new Point<>(1.0, 3.0);



    }
}
//泛型类
class Point<T> {
    private T x;
    private T y;

    public Point(T x, T y) {
        this.x = x;
        this.y = y;
    }

    public T getX() {
        return x;
    }

    public void setX(T x) {
        this.x = x;
    }

    public T getY() {
        return y;
    }

    public void setY(T y) {
        this.y = y;
    }
}
